package com.oocl.dojo.gildedrose.strategy;

import com.oocl.dojo.gildedrose.model.Item;

public class Strategy {
    protected void updateItemSellIn(Item item) {
        item.setSellIn(item.getSellIn() - 1);
    }

    protected void updateItemQuality(Item item) {
        if (item.getSellIn() < 0) {
            item.setQuality(item.getQuality() - 2);
        } else {
            item.setQuality(item.getQuality() - 1);
        }
    }

    protected void neverMoreThan50(Item item) {
        if (item.getQuality() > 50) {
            item.setQuality(50);
        }
    }

    protected void neverNegative(Item item) {
        if (item.getQuality() < 0) {
            item.setQuality(0);
        }
    }

    public void updateItem(Item item) {
        updateItemSellIn(item);
        updateItemQuality(item);
        neverNegative(item);
        neverMoreThan50(item);
    }

}
